package itheima.com.Day08Word;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MyMap04 {
    public static void main(String[] args) {
       /* 定义一个泛型为String类型的List集合，统计该集合中每个字符（注意，不是字符串）出现的次数。
        例如：集合中有”abc”、”bcd”两个元素，程序最终输出结果为：“a = 1,b = 2,c = 2,d = 1”。*/
       //创建Map集合利用键值存取，并用值计数
        Map<Character,Integer> map = new HashMap<>();
        //先得到每个键用来记录每个字符
        Set<Character> keys = map.keySet();

        ArrayList<String> list = new ArrayList<>();
      //添加元素
        list.add("abc");
        list.add("bcd");
        //循环遍历求取每个字符串，然后将其存入字符数组
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            char[] chars = s.toCharArray();
            //将字符数组遍历得到每一个字符
            for (int j = 0; j < chars.length; j++) {
                //将得到的字符存为键，不能用外面的键存（空的）
                Integer val = map.get(chars[j]);
                //将每个字符赋值给键，值为null可进行判断然后计数
                if(val==null){
                    map.put(chars[j],1);
                }else{
                    val++;
                    map.put(chars[j],val);
                }
            }
        }
        //值已经存入，最后遍历集合
        for (Character key : keys) {
            Integer value = map.get(key);
            System.out.println(key+"---"+value);
        }

    }
}
